-- @Author: 作者QQ201878826
-- @Date:   2022-09-06 16:40:22
-- @Last Modified by:   作者QQ381990860
-- @Last Modified time: 2022-09-12 15:49:24
-- @Author: 作者QQ381990860
-- @Date:   2021-10-20 00:02:23
-- @Last Modified by:   作者QQ381990860
-- @Last Modified time: 2022-08-25 04:52:12
function 角色处理类:捐赠排行(user,数额)
local 数额=数额+0
if user ==nil then
return
end
  if 捐赠排行[user.id]==nil then
     捐赠排行[user.id]={id=user.id,数额=0,名称=user.角色.名称}
  end
  捐赠排行[user.id].数额=捐赠排行[user.id].数额+数额
  发送数据(user.连接id, 9, "#xt/#w/你捐赠了" .. 数额 .. "点卡")
  self:获取排行(user)
end
function 角色处理类:获取排行数据(user)
  local 名单={}
  local 发送信息 ={}
  for b, v in pairs(捐赠排行) do
    名单[#名单+1]={数额=捐赠排行[b].数额,名称=捐赠排行[b].名称,id=捐赠排行[b].id}
  end
  table.sort(名单,function(a,b) return a.数额>b.数额 end)
  for i=1,3 do
    if 名单[i] ~= nil then
      发送信息[i] = 名单[i]
    end
  end
  return 发送信息
end
function 角色处理类:获取排行(user)
  local 名单={}
  local 发送信息 ={}
  for b, v in pairs(捐赠排行) do
    名单[#名单+1]={数额=捐赠排行[b].数额,名称=捐赠排行[b].名称,id=捐赠排行[b].id}
  end
  table.sort(名单,function(a,b) return a.数额>b.数额 end)
  for i=1,3 do
    if 名单[i] ~= nil then
      发送信息[i] = 名单[i]
    end
  end
local 总数=#名单
local wb,xx
    if 总数==1 then
    wb = "#y/第一名:"..名单[1].名称..",数额:"..名单[1].数额
    xx = {"捐赠"}
    发送数据(user.连接id,20,{"剑侠客","2022活动使者",wb,xx})
    elseif 总数==2 then
    wb = "#y/第一名:"..名单[1].名称..",数额:"..名单[1].数额.."\n".."#y/第二名:"..名单[2].名称..",数额:"..名单[2].数额
     xx = {"捐赠"}
    发送数据(user.连接id,20,{"剑侠客","2022活动使者",wb,xx})
    elseif 总数==3 then
    wb = "#y/第一名:"..名单[1].名称..",数额:"..名单[1].数额.."\n".."#y/第二名:"..名单[2].名称..",数额:"..名单[2].数额.."\n".."#y/第三名:"..名单[3].名称..",数额:"..名单[3].数额
    xx = {"捐赠"}
    发送数据(user.连接id,20,{"剑侠客","2022活动使者",wb,xx})
    else
    wb = "#y/当前没有人捐赠"
     xx = {"捐赠"}
    发送数据(user.连接id,20,{"剑侠客","2022活动使者",wb,xx})
    end
end



function 角色处理类:添加银子(user,数额, 类型)
  if user ==nil then
    return
  end
    if type(数额)~= "number" or 数额 < 0 then
      print(数额, 类型)
      error(string.format("id=%d,数额=%s,类型=%s添加银子错误",user.id,数额, 类型))
      封禁账号(user,"添加银子"..类型)
      return
    end
        数额= math.floor(数额)
      local 临时数额 = 数额
      local 初始余额 = user.角色.道具.货币.银子
       -- if user.角色.法宝效果.聚宝盆 then
       --    临时数额=临时数额+ user.角色.法宝效果.聚宝盆+ math.floor( 临时数额*100)
       --  end
       if  user.角色.头像~= "未拥有" and user.角色.头像时间 - os.time() > 0   and self:取是否打怪(类型) then
       临时数额= 临时数额+ math.floor( 临时数额*0.5)
       发送数据(user.连接id, 7, "#G/获得#R/头像银子#G/加成#R/5%")
    end
      if  user.角色.精灵.激活 == 1 and user.角色.精灵.等级 > 5 and user.角色.精灵.技能 =="聚财术" and self:取是否打怪(类型) then
         临时数额= 临时数额+ math.floor( 临时数额*0.5)
         发送数据(user.连接id, 7, "#R/获得小精灵银子加成5%")
      end
      if user.角色.锦衣数据.锦衣 and self:取是否打怪(类型)   then
       local 分割组 = 分割文本(user.角色.锦衣数据.锦衣,"_")
       if 分割组[1] == "飞天舞" or 分割组[1] == "羽仙歌·墨黑" or 分割组[1] == "羽仙歌·月白" or
        分割组[1] == "浪淘纱·月白" or 分割组[1] == "齐天大圣" or 分割组[1] == "浪淘纱" or
        分割组[1] == "从军行·须眉" or 分割组[1] == "铃儿叮当" or 分割组[1] == "青花瓷·月白"or
        分割组[1] == "落星织" or 分割组[1] == "碧华锦·凌雪" or 分割组[1] == "冰雪玉兔" or
        分割组[1] == "五毒锦绣" or 分割组[1] == "鹿角湾湾" or 分割组[1] == "浪迹天涯" or
        分割组[1] == "胡旋回雪" or 分割组[1] == "萌萌小厨" or 分割组[1] == "鎏金婚姻服" or
        分割组[1] == "雀之恋骨"
         then
       临时数额 =  math.floor(临时数额*0.3)
       发送数据(user.连接id, 7, "#F/获得锦衣加成3倍银子")

       end
    end
    if user.角色.锦衣数据.锦衣 and self:取是否打怪(类型)  then
       local 分割组 = 分割文本(user.角色.锦衣数据.锦衣,"_")
       if 分割组[1] == "真·飞天舞" or 分割组[1] == "真·羽仙歌·墨黑" or 分割组[1] == "真·羽仙歌·月白" or
        分割组[1] == "真·浪淘纱·月白" or 分割组[1] == "真·齐天大圣" or 分割组[1] == "真·浪淘纱" or
        分割组[1] == "真·从军行·须眉" or 分割组[1] == "真·铃儿叮当" or 分割组[1] == "真·青花瓷·月白"or
        分割组[1] == "真·落星织" or 分割组[1] == "真·碧华锦·凌雪" or 分割组[1] == "真·冰雪玉兔" or
        分割组[1] == "真·五毒锦绣" or 分割组[1] == "真·鹿角湾湾" or 分割组[1] == "真·浪迹天涯" or
        分割组[1] == "真·胡旋回雪" or 分割组[1] == "真·萌萌小厨" or 分割组[1] == "真·鎏金婚姻服" or
        分割组[1] == "真·雀之恋骨"
         then
       临时数额 =  math.floor(临时数额*0.5)
       发送数据(user.连接id, 7, "#F/获得锦衣加成5倍银子")
       end
    end

      user.角色.道具.货币.银子 = user.角色.道具.货币.银子 + 临时数额
      user.角色.获得银子 = user.角色.获得银子 + 临时数额
    if 类型 ~= 29 and 类型 ~= "仙玉抽奖" and 类型 ~= "黑市拍卖"then
      发送数据(user.连接id, 7, "#y/你获得了" .. 临时数额 .. "两银子")
       发送数据(user.连接id, 9, "#xt/#w/你获得了" .. 临时数额 .. "两银子")
    end

    if MoneyLog[user.id]==nil then
       MoneyLog[user.id]=0
    end
    MoneyLog[user.id]=MoneyLog[user.id]  +数额
    self:添加消费日志(user,"余额" .. 初始余额 .. "，获得银子：" .. 临时数额 .. ",来源代号" .. 类型 .. "，银子余额" .. user.角色.道具.货币.银子)
    --发送数据(user.连接id, 9, "#xt/#w/获得" ..  临时数额 .. "点银子")
    发送数据(user.连接id, 3008, {Type="银两",Value=user.角色.道具.货币.银子})
end
function 角色处理类:扣除点卡(user,数额,类型)
    if 数额 <= 0 then
      return true
    end
    user.点卡 = f函数.读配置(ServerDirectory.."玩家信息/账号" .. user.账号 .. "/账号.txt", "账号信息", "点卡") + 0
    if user.点卡 <= 0 then
      发送数据(user.连接id, 7, "#y/你没有那么多的点卡")
      return false
    end
    if user.点卡 < 数额 then
      发送数据(user.连接id, 7, "#y/你没有那么多的点卡")
      return false
    else
      user.点卡 = user.点卡 - 数额
      self:添加系统消息(user, "#w/您消耗了#y/" .. 数额 .. "#w/点点卡，当前可用点卡数额为#r/" .. user.点卡 .. "#w/点")
      f函数.写配置(ServerDirectory.."玩家信息/账号" .. user.账号 .. "/账号.txt", "账号信息", "点卡", user.点卡)
      self:添加消费日志(user,"扣除"..数额.."点卡来源"..类型)
      return true
    end
     发送数据(user.连接id, 3008, {Type="点卡",Value=user.点卡})
   end
   function 角色处理类:扣除守护九宠(user,数额,类型)
    if 数额 <= 0 then
      return true
    end
    user.守护九宠 = f函数.读配置(ServerDirectory.."玩家信息/账号" .. user.账号 .. "/账号.txt", "账号信息", "守护九宠") + 0
    if user.守护九宠 <= 0 then
      发送数据(user.连接id, 7, "#y/你没有那么多的点卡")
      return false
    end
    if user.守护九宠 < 数额 then
      发送数据(user.连接id, 7, "#y/你没有那么多的点卡")
      return false
    else
      user.守护九宠 = user.守护九宠 - 数额
      self:添加系统消息(user, "#w/您消耗了#y/" .. 数额 .. "#w/点点卡，当前可用点卡数额为#r/" .. user.守护九宠 .. "#w/点")
      f函数.写配置(ServerDirectory.."玩家信息/账号" .. user.账号 .. "/账号.txt", "账号信息", "守护九宠", user.守护九宠)
      self:添加消费日志(user,"扣除"..数额.."点卡来源"..类型)
      return true
    end
     发送数据(user.连接id, 3008, {Type="点卡",Value=user.点卡})
   end
   function 角色处理类:添加点卡(user,数额,类型)----------------------
      if 数额 <= 0 then
        return
      end
      user.点卡 = f函数.读配置(ServerDirectory.."玩家信息/账号" .. user.账号 .. "/账号.txt", "账号信息", "点卡") + 0
      user.点卡=user.点卡+数额
      f函数.写配置(ServerDirectory..[[玩家信息\账号]]..user.账号..[[\账号.txt]],"账号信息","点卡",user.点卡)
      user.点卡=f函数.读配置(ServerDirectory..[[玩家信息\账号]]..user.账号..[[\账号.txt]],"账号信息","点卡")+0
      self:添加系统消息(user, "#w/您获得了#y/" .. 数额 .. "#w/点点卡，当前可用点卡数额为#r/" .. user.点卡 .. "#w/点")
      发送数据(user.连接id,7,"#y/你获得了"..数额.."点卡")
      self:添加消费日志(user,"增加"..数额.."点卡来源"..类型)
         发送数据(user.连接id, 3008, {Type="点卡",Value=user.点卡})
   end
   function 角色处理类:添加守护九宠(user,数额,类型)----------------------
      if 数额 <= 0 then
        return
      end
      user.守护九宠 = f函数.读配置(ServerDirectory.."玩家信息/账号" .. user.账号 .. "/账号.txt", "账号信息", "守护九宠") + 0
      user.守护九宠=user.守护九宠+数额
      f函数.写配置(ServerDirectory..[[玩家信息\账号]]..user.账号..[[\账号.txt]],"账号信息","守护九宠",user.守护九宠)
      user.守护九宠=f函数.读配置(ServerDirectory..[[玩家信息\账号]]..user.账号..[[\账号.txt]],"账号信息","守护九宠")+0
      self:添加系统消息(user, "#w/您获得了#y/" .. 数额 .. "#w/点点卡，当前可用守护九宠数额为#r/" .. user.守护九宠 .. "#w/点")
      发送数据(user.连接id,7,"#y/你获得了"..数额.."守护九宠")
      self:添加消费日志(user,"增加"..数额.."守护九宠来源"..类型)
         发送数据(user.连接id, 3008, {Type="守护九宠",Value=user.守护九宠})
   end
function 角色处理类:取是否打怪(类型)

if 类型 == "摇钱树" or 类型 == "押镖" or 类型 == "邪恶年兽" or 类型 == "精灵王" or 类型 == "师门守卫" or 类型 == "宝宝任务链" or 类型 == "乌鸡副本" or 类型 == "车迟" or 类型 == "嘉年华" or 类型 == "地煞" or 类型 == "大雁塔" or 类型 == "天罡" or 类型 == "天罡星69"  or 类型 == "打宝BOSS" or 类型 == "天罡星2" or 类型 == "天罡星3" or 类型 == "天罡星4" or 类型 == "天罡星5" or 类型 == "天罡星6" or 类型 == "官职" or 类型 == "官职任务" or 类型 == "宝图" or 类型 == "贼王" or 类型 == "封妖" or 类型 == "师门" or 类型 == "抓鬼" or 类型 == "皇宫飞贼" or 类型 == "神器任务" or 类型 == "群雄逐鹿" or 类型 == "蚩尤挑战" or 类型 == "门派闯关" or 类型 == "鬼王"  or 类型 == "边境救援" then
return true
else
return false
end

return false
end
 function 角色处理类:扣除人民币(user,数额, 类型)
       if type(user.角色.人民币)~= "number" then
   user.角色.道具.货币.银子 = 0
   return 0
   end
    if 数额 < 0 then
      封禁账号(user,"扣除人民币")
      广播消息(9, "#xt/#g/ " .. user.角色.名称 .. "使用非法软件,已经封号")
      return 0
    end
    if type(user.角色.人民币)~= "number" then
      封禁账号(user,"扣除人民币")
      return
    end
    user.角色.人民币 = user.角色.人民币 - 数额
  发送数据(user.连接id, 7, "#y/你失去了" .. 数额 .. "人民币")
   end
   function 角色处理类:添加人民币(user,数额, 类型)
   if user.角色.人民币 == nil then
   user.角色.人民币 = 0
   end
     if type(user.角色.人民币)~= "number" then
   user.角色.人民币 = 0
   return 0
   end
    if 数额 < 0 then
      封禁账号(user,"扣除人民币")
      广播消息(9, "#xt/#g/ " .. user.角色.名称 .. "使用非法软件,已经封号")
      return 0
    end
    if type(user.角色.人民币)~= "number" then
      封禁账号(user,"扣除人民币")
      return
    end
    user.角色.人民币 = user.角色.人民币 + 数额
  发送数据(user.连接id, 7, "#y/你获得了" .. 数额 .. "人民币")
   end
function 角色处理类:扣除银子(user,数额, 类型, 储备)
    if 数额 < 0 then
      封禁账号(user,"扣除银子")
      广播消息(9, "#xt/#g/ " .. user.角色.名称 .. "使用非法软件,已经封号")
      return 0
    end
    if type(user.角色.道具.货币.银子)~= "number" then
      封禁账号(user,"扣除银子")
      return
    end
    数额=math.floor(数额)
    if 储备 == nil then
      local 初始余额 = user.角色.道具.货币.银子
      user.角色.道具.货币.银子 = user.角色.道具.货币.银子 - 数额
      self:添加消费日志(user,"余额" .. 初始余额 .. "，失去银子：" .. 数额 .. ",来源代号" .. 类型 .. "，银子余额" .. user.角色.道具.货币.银子)
      if 类型 ~= "技能学习" and 类型 ~= "修炼" and 类型 ~= "商城" then
        发送数据(user.连接id, 7, "#y/你失去了" .. 数额 .. "两银子")
      end
    elseif 数额 <= user.角色.道具.货币.储备 then
      初始余额 = user.角色.道具.货币.储备
      user.角色.道具.货币.储备 = user.角色.道具.货币.储备 - 数额
      self:添加消费日志(user,"余额" .. 初始余额 .. "，失去银子：" .. 数额 .. ",来源代号" .. 类型 .. "，储备余额" .. user.角色.道具.货币.储备)
      if 类型 ~= "技能学习" and 类型 ~= "修炼" then
        发送数据(user.连接id, 7, "#y/你失去了" .. 数额 .. "两储备银子")
      end
    else
      self.扣除余额 = 数额 - user.角色.道具.货币.储备
      self:添加消费日志(user,"余额" .. user.角色.道具.货币.储备 .. "，失去银子：" .. user.角色.道具.货币.储备 .. ",来源代号" .. 类型 .. "，储备余额" .. user.角色.道具.货币.储备)
      if 类型 ~= 10 and 类型 ~= 11 then
        发送数据(user.连接id, 7, "#y/你失去了" .. user.角色.道具.货币.储备 .. "两储备金")
      end
      user.角色.道具.货币.储备 = 0
      user.角色.道具.货币.银子 = user.角色.道具.货币.银子 - self.扣除余额
      self:添加消费日志(user,"余额" .. user.角色.道具.货币.银子 .. "，失去银子：" .. self.扣除余额 .. ",来源代号" .. 类型 .. "，银子余额" .. user.角色.道具.货币.银子)
      if 类型 ~= 10  then
        发送数据(user.连接id, 7, "#y/你失去了" .. self.扣除余额 .. "两银子")
      end
    end
     发送数据(user.连接id, 3008, {Type="银两",Value=user.角色.道具.货币.银子})
end

function 角色处理类:扣除经验(user,数额, 类型)
    user.角色.当前经验 = user.角色.当前经验 - 数额
end

function 角色处理类:添加经验(user,数额, 类型)
  if type(数额)~="number" then
       error(类型.."添加经验类型数据错误")
       return
  elseif 类型==nil then
            error(user.id.."添加经验没有数据类型错误")
       return
  end
    local 临时数额 = 数额* ServerConfig.经验获得率
    local 捐献数额=f函数.读配置(ServerDirectory..[[配置文件\捐献系统配置.txt]], "捐献系统配置", "捐献数额")+0
    local 经验加成=f函数.读配置(ServerDirectory..[[配置文件\捐献系统配置.txt]], "捐献系统配置", "经验加成")+0
    local 额外经验加成=f函数.读配置(ServerDirectory..[[配置文件\捐献系统配置.txt]], "捐献系统配置", "额外经验加成")+0
    if  user.角色.精灵.激活 == 1 and user.角色.精灵.等级 > 4 and user.角色.精灵.技能 =="聚灵术" and self:取是否打怪(类型)  then
       临时数额= 临时数额+ math.floor( 临时数额*0.5)
       发送数据(user.连接id, 7, "#R/获得小精灵经验加成5%")
    end
    if  user.角色.彩饰~= "未拥有" and user.角色.彩饰时间 - os.time() > 0 and self:取是否打怪(类型) then
       临时数额= 临时数额+ math.floor( 临时数额*0.5)
       发送数据(user.连接id, 7, "#G/获得#R/彩饰经验#G/加成#R/5%")
    end
    if user.角色.法宝效果.通灵宝玉 and self:取是否打怪(类型)  then
         临时数额= 临时数额+ math.floor( 临时数额*user.角色.法宝效果.通灵宝玉/100)
    end
    if user.角色.锦衣数据.锦衣 and self:取是否打怪(类型)  then
       local 分割组 = 分割文本(user.角色.锦衣数据.锦衣,"_")
       if 分割组[1] == "飞天舞" or 分割组[1] == "羽仙歌·墨黑" or 分割组[1] == "羽仙歌·月白" or
        分割组[1] == "浪淘纱·月白" or 分割组[1] == "齐天大圣" or 分割组[1] == "浪淘纱" or
        分割组[1] == "从军行·须眉" or 分割组[1] == "铃儿叮当" or 分割组[1] == "青花瓷·月白"or
        分割组[1] == "落星织" or 分割组[1] == "碧华锦·凌雪" or 分割组[1] == "冰雪玉兔" or
        分割组[1] == "五毒锦绣" or 分割组[1] == "鹿角湾湾" or 分割组[1] == "浪迹天涯" or
        分割组[1] == "胡旋回雪" or 分割组[1] == "萌萌小厨" or 分割组[1] == "鎏金婚姻服" or
        分割组[1] == "雀之恋骨"
         then
       临时数额 =  math.floor(临时数额*0.3)
       发送数据(user.连接id, 7, "#F/获得锦衣加成3倍经验")
       end
    end
    if user.角色.锦衣数据.锦衣 and self:取是否打怪(类型)  then
       local 分割组 = 分割文本(user.角色.锦衣数据.锦衣,"_")
       if 分割组[1] == "真·飞天舞" or 分割组[1] == "真·羽仙歌·墨黑" or 分割组[1] == "真·羽仙歌·月白" or
        分割组[1] == "真·浪淘纱·月白" or 分割组[1] == "真·齐天大圣" or 分割组[1] == "真·浪淘纱" or
        分割组[1] == "真·从军行·须眉" or 分割组[1] == "真·铃儿叮当" or 分割组[1] == "真·青花瓷·月白"or
        分割组[1] == "真·落星织" or 分割组[1] == "真·碧华锦·凌雪" or 分割组[1] == "真·冰雪玉兔" or
        分割组[1] == "真·五毒锦绣" or 分割组[1] == "真·鹿角湾湾" or 分割组[1] == "真·浪迹天涯" or
        分割组[1] == "真·胡旋回雪" or 分割组[1] == "真·萌萌小厨" or 分割组[1] == "真·鎏金婚姻服" or
        分割组[1] == "真·雀之恋骨"
         then
       临时数额 =  math.floor(临时数额*0.5)
       发送数据(user.连接id, 7, "#F/获得锦衣加成5倍经验")
       end
    end
    if 捐献系统[user.id] == nil then
      捐献系统[user.id]={数额=0,名称=user.角色.名称}
    end
    if 捐献系统[user.id].数额 > 捐献数额 then
       临时数额 =  math.floor(临时数额*(0.01*经验加成))
    end
    if (user.角色.名称 == 捐献幸运数据.名称1 or user.角色.名称 == 捐献幸运数据.名称2 or user.角色.名称 == 捐献幸运数据.名称3 or user.角色.名称 == 捐献幸运数据.名称4 or user.角色.名称 == 捐献幸运数据.名称5) and user.角色.名称~="" then
       临时数额 =  math.floor(临时数额*(0.01*额外经验加成))
    end
    if user.角色.双倍 and  LinkTask[类型]==nil and 类型~="师门" and 类型~="GM充值"and 类型~="仙玉抽奖" and 类型~="门派闯关"   and 类型~="游泳"
      and 类型~="皇宫飞贼" and 类型~="嘉年华" and 类型~="活跃度" and 类型~="古董"  and 类型~="群雄逐鹿" and 类型~="蚩尤挑战" and 类型~="无限轮回" then
       临时数额 =  临时数额*2
    end
    user.角色.当前经验 = user.角色.当前经验 +   math.floor(临时数额)
    user.角色.获得经验 = user.角色.获得经验 +  math.floor(临时数额)
    发送数据(user.连接id, 9, "#xt/#w/获得" ..  临时数额 .. "点经验")
    发送数据(user.连接id, 1003, self:获取角色气血数据(user))
    self:添加消费日志(user,"获得经验：" ..  临时数额 .. ",来源代号" .. 类型)
end
function 角色处理类:添加经验1(user,数额, 类型)

    if 类型 == nil  then
       类型 = "未知"
    end
  if type(数额)~="number" then
       error(类型.."添加经验类型数据错误")
       return
  elseif 类型==nil then
            error(user.id.."添加经验没有数据类型错误")
       return
  end
    local 临时数额 = 数额

   if  user.角色.精灵.激活 == 1 and user.角色.精灵.等级 > 4 and user.角色.精灵.技能 =="聚灵术"  then
       临时数额= 临时数额+ math.floor( 临时数额*0.05)
       发送数据(user.连接id, 7, "#R/获得小精灵经验加成5%")
    end


    user.角色.当前经验 = user.角色.当前经验 +   math.floor(临时数额)
    user.角色.获得经验 = user.角色.获得经验 +  math.floor(临时数额)
    发送数据(user.连接id, 9, "#xt/#w/获得" ..  临时数额 .. "点经验")
    发送数据(user.连接id, 1003, self:获取角色气血数据(user))
    self:添加消费日志(user,"获得经验1：" ..  临时数额 .. ",来源代号" .. 类型)
   end
function 角色处理类:扣除仙玉(user,数额,类型)
    if 数额 <= 0 then
      return true
    end
    user.仙玉 = f函数.读配置(ServerDirectory.."玩家信息/账号" .. user.账号 .. "/账号.txt", "账号信息", "仙玉") + 0
    if user.仙玉 <= 0 then
      发送数据(user.连接id, 7, "#y/你没有那么多的仙玉")
      return false
    end
    if user.仙玉 < 数额 then
      发送数据(user.连接id, 7, "#y/你没有那么多的仙玉")
      return false
    else
      user.仙玉 = user.仙玉 - 数额
      self:添加系统消息(user, "#w/您消耗了#y/" .. 数额 .. "#w/点仙玉，当前可用仙玉数额为#r/" .. user.仙玉 .. "#w/点")
      f函数.写配置(ServerDirectory.."玩家信息/账号" .. user.账号 .. "/账号.txt", "账号信息", "仙玉", user.仙玉)
      self:添加消费日志(user,"扣除"..数额.."仙玉来源"..类型)
      return true
    end
     发送数据(user.连接id, 3008, {Type="仙玉",Value=user.仙玉})
end
function 角色处理类:检查仙玉(user,数额)
    if 数额 <= 0 then
      return true
    end
    user.仙玉 = f函数.读配置(ServerDirectory.."玩家信息/账号" .. user.账号 .. "/账号.txt", "账号信息", "仙玉") + 0
    if user.仙玉 <= 0 then
      return false
    end
    if user.仙玉 < 数额 then
      return false
    else
     return true
    end

   end
function 角色处理类:添加仙玉(user,数额,类型)
      if 数额 <= 0 then
        return
      end
      user.仙玉 = f函数.读配置(ServerDirectory.."玩家信息/账号" .. user.账号 .. "/账号.txt", "账号信息", "仙玉") + 0
      user.仙玉=user.仙玉+数额
      f函数.写配置(ServerDirectory..[[玩家信息\账号]]..user.账号..[[\账号.txt]],"账号信息","仙玉",user.仙玉)
      user.仙玉=f函数.读配置(ServerDirectory..[[玩家信息\账号]]..user.账号..[[\账号.txt]],"账号信息","仙玉")+0
      self:添加系统消息(user, "#w/您获得了#y/" .. 数额 .. "#w/点仙玉，当前可用仙玉数额为#r/" .. user.仙玉 .. "#w/点")
      发送数据(user.连接id,7,"#y/你获得了"..数额.."仙玉")
      self:添加消费日志(user,"增加"..数额.."仙玉来源"..类型)
         发送数据(user.连接id, 3008, {Type="仙玉",Value=user.仙玉})
end

function 角色处理类:添加储备(user,数额, 类型)
    数额= math.floor(数额)
    local 临时数额 = 数额
    local 初始余额 = user.角色.道具.货币.储备
    user.角色.道具.货币.储备 = user.角色.道具.货币.储备 + 临时数额
    发送数据(user.连接id, 7, "#y/你获得了" .. 数额 .. "储备金")
    发送数据(user.连接id, 9, "#xt/#w/你获得了" .. 数额 .. "储备金")
    self:添加消费日志(user,"余额" .. 初始余额 .. "，获得储备：" .. 临时数额 .. ",来源代号" .. 类型 .. "，储备余额" .. user.角色.道具.货币.储备)
      发送数据(user.连接id, 3008, {Type="储备",Value=user.角色.道具.货币.储备})
end

function 角色处理类:添加体力(user,数额)
      user.角色.当前体力 = user.角色.当前体力 + 数额
      if user.角色.当前体力 > user.角色.体力上限 then
        user.角色.当前体力 =user.角色.体力上限
      end
      发送数据(user.连接id, 7,string.format("#y/你的体力增加了%d点",数额))
end

function 角色处理类:扣除体力(user,数额)
      if user.角色.当前体力 < 数额 then
        return true
      else
        user.角色.当前体力=user.角色.当前体力-数额
      end
      发送数据(user.连接id, 7, string.format("#y/你消耗了%d点体力",数额))
end

function 角色处理类:添加活力(user,数额)
         user.角色.当前活力 = user.角色.当前活力 + 数额
      if user.角色.当前活力 > user.角色.活力上限 then
        user.角色.当前活力 =user.角色.活力上限
      end
      发送数据(user.连接id, 7,string.format("#y/你的活力增加了%d点",数额))
end

function 角色处理类:添加愤怒(user,数额)
  user.角色.愤怒=user.角色.愤怒+数额
  if user.角色.愤怒>150 then user.角色.愤怒=150 end
 发送数据(user.连接id,3030,1)
 发送数据(user.连接id,1003,self:获取角色气血数据(user))
end

function 角色处理类:恢复血魔(user,类型,数额)
  if 类型==1 then --恢复至满状态
   user.角色.当前气血=user.角色.最大气血
   user.角色.气血上限=user.角色.最大气血
   user.角色.当前魔法=user.角色.魔法上限
  elseif 类型==2 then --恢复气血
   user.角色.当前气血=user.角色.当前气血+数额
   if user.角色.当前气血>user.角色.气血上限 then
    user.角色.当前气血=user.角色.气血上限
     end
  elseif 类型==3 then --恢复魔法
    user.角色.当前魔法=user.角色.当前魔法+数额
   if user.角色.当前魔法>user.角色.魔法上限 then user.角色.当前魔法=user.角色.魔法上限 end
   elseif 类型==4 then
   user.角色.气血上限 =user.角色.气血上限+数额
    if user.角色.气血上限>user.角色.最大气血 then
    user.角色.气血上限=user.角色.最大气血
     end
    end
 发送数据(user.连接id,3030,1)
 发送数据(user.连接id,1003,self:获取角色气血数据(user))
end

function 角色处理类:添加活跃度(user,数额)
  if 活动数据.活跃度[user.id] then
    if 活动数据.活跃度[user.id].积分  >=600 then
       return
    elseif 活动数据.活跃度[user.id].积分+数额  >=600 then
      活动数据.活跃度[user.id].积分=600
    else
        活动数据.活跃度[user.id].积分= 活动数据.活跃度[user.id].积分+数额
    end
  else
   活动数据.活跃度[user.id]={积分=数额,[1]=0,[2]=0,[3]=0}
  end
    user.角色.活跃度=user.角色.活跃度+数额
    发送数据(user.连接id, 7, "#y/你获得了#r/"..数额.."#y/点活跃度")
end

function 角色处理类:添加帮贡(user,数额)
    if user.角色.帮派 then
        帮派数据[user.角色.帮派].繁荣=帮派数据[user.角色.帮派].繁荣+数额/2
        帮派数据[user.角色.帮派].成员名单[user.id].帮贡.获得=帮派数据[user.角色.帮派].成员名单[user.id].帮贡.获得+数额
        帮派数据[user.角色.帮派].成员名单[user.id].帮贡.当前=帮派数据[user.角色.帮派].成员名单[user.id].帮贡.当前+数额
        发送数据(user.连接id,7,string.format("#Y/你获得了%d点帮贡",数额))
        发送数据(user.连接id,7,string.format("#Y/你帮派的繁荣增加了%d点",数额/2))
    end
end

function 角色处理类:充值帮贡(user,数额)
    if user.角色.帮派 then
        帮派数据[user.角色.帮派].成员名单[user.id].帮贡.获得=帮派数据[user.角色.帮派].成员名单[user.id].帮贡.获得+数额
        帮派数据[user.角色.帮派].成员名单[user.id].帮贡.当前=帮派数据[user.角色.帮派].成员名单[user.id].帮贡.当前+数额
    end
end

function 角色处理类:充值活跃度(user,数额)
  if 活动数据.活跃度[user.id] then
    活动数据.活跃度[user.id].积分= 活动数据.活跃度[user.id].积分+数额
  else
    活动数据.活跃度[user.id]={积分=数额,[1]=0,[2]=0,[3]=0}
  end
    user.角色.活跃度=user.角色.活跃度+数额
end

---扣除
function 角色处理类:扣除活跃度(user,数额)
    user.角色.活跃度=user.角色.活跃度-数额
end
function 角色处理类:扣除活动积分(user,数额)
    user.角色.活动积分=user.角色.活动积分-数额
end
function 角色处理类:扣除比武积分(user,数额)
    user.角色.比武积分=user.角色.比武积分-数额
end
function 角色处理类:扣除副本积分(user,数额)
    user.角色.副本积分=user.角色.副本积分-数额
end
function 角色处理类:扣除地煞积分(user,数额)
    user.角色.地煞积分=user.角色.地煞积分-数额
end
function 角色处理类:扣除守护积分(user,数额)
    user.角色.守护积分=user.角色.守护积分-数额
end
function 角色处理类:扣除知了积分(user,数额)
    user.角色.知了积分=user.角色.知了积分-数额
end
function 角色处理类:扣除天罡积分(user,数额)
    user.角色.天罡积分=user.角色.天罡积分-数额
end
function 角色处理类:扣除成就积分(user,数额)
    user.角色.成就积分=user.角色.成就积分-数额
end
function 角色处理类:扣除单人积分(user,数额)
    user.角色.单人积分=user.角色.单人积分-数额
end
function 角色处理类:扣除特殊积分(user,数额)
    user.角色.特殊积分=user.角色.特殊积分-数额
end
function 角色处理类:扣除新年积分(user,数额)
    user.角色.新年积分=user.角色.新年积分-数额
end
function 角色处理类:扣除长安保卫战累计积分(user,数额)
    user.角色.长安保卫战累计积分=user.角色.长安保卫战累计积分-数额
end
function 角色处理类:扣除长安保卫战积分(user,数额)
    user.角色.长安保卫战积分=user.角色.长安保卫战积分-数额
end

-------添加
function 角色处理类:添加守护积分(user,数额)
    user.角色.守护积分=user.角色.守护积分+数额
        发送数据(user.连接id, 7, "#y/你获得了" .. 数额 .. "点守护积分")
    发送数据(user.连接id, 9, "#xt/#w/你获得了" .. 数额 .. "点守护积分")
end
function 角色处理类:添加地煞积分(user,数额)
    user.角色.地煞积分=user.角色.地煞积分+数额
        发送数据(user.连接id, 7, "#y/你获得了" .. 数额 .. "点地煞积分")
    发送数据(user.连接id, 9, "#xt/#w/你获得了" .. 数额 .. "点地煞积分")
end
function 角色处理类:添加法宝灵气(user,数额)
    user.角色.法宝灵气=user.角色.法宝灵气+数额
        发送数据(user.连接id, 7, "#y/你获得了" .. 数额 .. "点法宝灵气")
    发送数据(user.连接id, 9, "#xt/#w/你获得了" .. 数额 .. "点法宝灵气")
end
function 角色处理类:添加知了积分(user,数额)
    user.角色.知了积分=user.角色.知了积分+数额
        发送数据(user.连接id, 7, "#y/你获得了" .. 数额 .. "点知了积分")
    发送数据(user.连接id, 9, "#xt/#w/你获得了" .. 数额 .. "点知了积分")
end
function 角色处理类:添加天罡积分(user,数额)
    user.角色.天罡积分=user.角色.天罡积分+数额
        发送数据(user.连接id, 7, "#y/你获得了" .. 数额 .. "点天罡积分")
    发送数据(user.连接id, 9, "#xt/#w/你获得了" .. 数额 .. "点天罡积分")
end
function 角色处理类:添加威望积分(user,数额)
    user.角色.威望经验=user.角色.威望经验+数额
        发送数据(user.连接id, 7, "#y/你获得了" .. 数额 .. "点威望")
    发送数据(user.连接id, 9, "#xt/#w/你获得了" .. 数额 .. "点威望")
end
function 角色处理类:添加成就积分(user,数额)
    user.角色.成就积分=user.角色.成就积分+数额
        发送数据(user.连接id, 7, "#y/你获得了" .. 数额 .. "点成就积分")
    发送数据(user.连接id, 9, "#xt/#w/你获得了" .. 数额 .. "点成就积分")
end
function 角色处理类:添加单人积分(user,数额)
    user.角色.单人积分=user.角色.单人积分+数额
        发送数据(user.连接id, 7, "#y/你获得了" .. 数额 .. "点单人积分")
    发送数据(user.连接id, 9, "#xt/#w/你获得了" .. 数额 .. "点单人积分")
end
function 角色处理类:添加特殊积分(user,数额)
    user.角色.特殊积分=user.角色.特殊积分+数额
        发送数据(user.连接id, 7, "#y/你获得了" .. 数额 .. "点特殊积分")
    发送数据(user.连接id, 9, "#xt/#w/你获得了" .. 数额 .. "点特殊积分")
end
function 角色处理类:添加特殊积分(user,数额)
if 至尊卡[user.id] == nil then
                 至尊卡[user.id] = {开通=0,次数=0,累计=0,时间=os.time()}
                 end
                 至尊卡[user.id] = {}
                 至尊卡[user.id] = {开通=0,次数=0,累计=0,时间=os.time()}
end
----
function 角色处理类:添加威望积分(user,数额)
    user.角色.威望经验=user.角色.威望经验+数额
        发送数据(user.连接id, 7, "#y/你获得了" .. 数额 .. "点威望")
    发送数据(user.连接id, 9, "#xt/#w/你获得了" .. 数额 .. "点威望")
end
function 角色处理类:添加镇魔声望(user,数额)
    user.角色.镇魔声望.累计 =user.角色.镇魔声望.累计+数额
        发送数据(user.连接id, 7, "#y/你获得了" .. 数额 .. "点镇魔声望")
    发送数据(user.连接id, 9, "#xt/#w/你获得了" .. 数额 .. "点镇魔声望")
end
function 角色处理类:添加镇魔积分(user,数额,额外)
    user.角色.镇魔声望.当前 =user.角色.镇魔声望.当前+数额

    if 额外 ~=nil then
      发送数据(user.连接id, 7, "#y/你#R/额外#Y/获得了" .. 数额 .. "点镇魔积分")
    发送数据(user.连接id, 9, "#xt/#w/你#R/额外#w/获得了" .. 数额 .. "点镇魔积分")
    else
     发送数据(user.连接id, 7, "#y/你获得了" .. 数额 .. "点镇魔积分")
    发送数据(user.连接id, 9, "#xt/#w/你获得了" .. 数额 .. "点镇魔积分")

    end


end
--
function 角色处理类:添加比武积分(user,数额)
    user.角色.比武积分=user.角色.比武积分+数额
        发送数据(user.连接id, 7, "#y/你获得了" .. 数额 .. "点比武积分")
    发送数据(user.连接id, 9, "#xt/#w/你获得了" .. 数额 .. "点比武积分")
end
function 角色处理类:添加战令经验(user,数额)
    user.战令.当前经验=user.战令.当前经验+数额
    发送数据(user.连接id, 7, "#y/你获得了" .. 数额 .. "点战令经验")
    发送数据(user.连接id, 9, "#xt/#w/你获得了" .. 数额 .. "点战令经验")
end
function 角色处理类:添加副本积分(user,数额)
    user.角色.副本积分=user.角色.副本积分+数额
    发送数据(user.连接id, 7, "#y/你获得了" .. 数额 .. "点副本积分")
    发送数据(user.连接id, 9, "#xt/#w/你获得了" .. 数额 .. "点副本积分")
end
function 角色处理类:添加活动积分(user,数额)
        user.角色.活动积分=user.角色.活动积分+数额
        发送数据(user.连接id,7,string.format("#Y/你获得了%d点活动积分！该积分可在大转盘处抽奖",数额))
end
function 角色处理类:添加知了进度(user,数额)
    if 活动进度[user.id] == nil then
      活动进度[user.id]={师门=0,抓鬼=0,鬼王=0,门派闯关=0,皇宫飞贼=0,知了=0,通天塔=0,车迟斗法=0,乌鸡国=0,高级藏宝图=0,玲珑宝图=0,新手泡泡=0,夏日炎炎=0,年兽活动=0,地煞活动=0,天罡神器=0,任务链=0,轮回镜=0}
    end
    if 活动进度[user.id].知了 < 50 then
     活动进度[user.id].知了 = 活动进度[user.id].知了 + 数额
    end
end
function 角色处理类:添加泡泡进度(user,数额)
    if 活动进度[user.id] == nil then
      活动进度[user.id]={师门=0,抓鬼=0,鬼王=0,门派闯关=0,皇宫飞贼=0,知了=0,通天塔=0,车迟斗法=0,乌鸡国=0,高级藏宝图=0,玲珑宝图=0,新手泡泡=0,夏日炎炎=0,年兽活动=0,地煞活动=0,天罡神器=0,任务链=0,轮回镜=0}
    end
    if 活动进度[user.id].新手泡泡 < 50 then
     活动进度[user.id].新手泡泡 = 活动进度[user.id].新手泡泡 + 数额
    end
end
function 角色处理类:添加夏日进度(user,数额)
    if 活动进度[user.id] == nil then
      活动进度[user.id]={师门=0,抓鬼=0,鬼王=0,门派闯关=0,皇宫飞贼=0,知了=0,通天塔=0,车迟斗法=0,乌鸡国=0,高级藏宝图=0,玲珑宝图=0,新手泡泡=0,夏日炎炎=0,年兽活动=0,地煞活动=0,天罡神器=0,任务链=0,轮回镜=0}
    end
    if 活动进度[user.id].夏日炎炎 < 50 then
     活动进度[user.id].夏日炎炎 = 活动进度[user.id].夏日炎炎 + 数额
    end
end
function 角色处理类:添加年兽进度(user,数额)
    if 活动进度[user.id] == nil then
      活动进度[user.id]={师门=0,抓鬼=0,鬼王=0,门派闯关=0,皇宫飞贼=0,知了=0,通天塔=0,车迟斗法=0,乌鸡国=0,高级藏宝图=0,玲珑宝图=0,新手泡泡=0,夏日炎炎=0,年兽活动=0,地煞活动=0,天罡神器=0,任务链=0,轮回镜=0}
    end
    if 活动进度[user.id].年兽活动 < 50 then
     活动进度[user.id].年兽活动 = 活动进度[user.id].年兽活动 + 数额
    end
end
function 角色处理类:添加剧情点(user,数额)
        user.角色.剧情技能点=user.角色.剧情技能点+数额
       发送数据(user.连接id, 7, "#y/你获得了" .. 数额 .. "点剧情技能点")
       发送数据(user.连接id, 9, "#xt/#w/你获得了" .. 数额 .. "点剧情技能点")
      发送数据(user.连接id,20053,{剧情技能=user.角色.剧情技能,剧情点=user.角色.剧情技能点})
end
function 角色处理类:添加修炼点(user,数额)
        if user.角色.召唤兽修炼[user.角色.召唤兽修炼.当前].上限 <= user.角色.召唤兽修炼[user.角色.召唤兽修炼.当前].等级 then
            发送数据(user.连接id, 7, "#y/你当前的这项修炼等级已达上限，无法再在增加")
            return true
        elseif user.角色.等级 < 65 then
             发送数据(user.连接id,7,"#Y/等级达到65级才能获得")
             return true
        else
            角色处理类:添加召唤兽修炼经验(user,数额)
        end
end
function 角色处理类:添加召唤兽修炼点数(user,数额)
    user.角色.召唤兽修炼点数=user.角色.召唤兽修炼点数+数额
    发送数据(user.连接id,9,"#xt/"..string.format("#Y/你获得了%d点召唤兽修炼点数",数额))
end
function 角色处理类:添加新年积分(user,数额)
    user.角色.新年积分=user.角色.新年积分+数额
        发送数据(user.连接id, 7, "#y/你获得了" .. 数额 .. "点新年积分")
    发送数据(user.连接id, 9, "#xt/#w/你获得了" .. 数额 .. "点新年积分")
end

function 角色处理类:添加长安保卫战积分(user,数额)
    user.角色.长安保卫战积分=user.角色.长安保卫战积分+数额
        发送数据(user.连接id, 7, "#y/你获得了" .. 数额 .. "点长安保卫战积分")
    发送数据(user.连接id, 9, "#xt/#w/你获得了" .. 数额 .. "点长安保卫战积分")
end
function 角色处理类:添加长安保卫战累计积分(user,数额)
    user.角色.长安保卫战累计积分=user.角色.长安保卫战累计积分+数额
        发送数据(user.连接id, 7, "#y/你获得了" .. 数额 .. "点长安保卫战累计积分")
    发送数据(user.连接id, 9, "#xt/#w/你获得了" .. 数额 .. "点长安保卫战累计积分")
end